import request from './request';

/**
 * 管理员登录
 * @param {Object} data 包含用户名和密码的对象
 * @returns {Promise}
 */
export function login(data) {
  return request({
    url: '/admin/login',
    method: 'post',
    data
  });
}

/**
 * 通过token获取管理员信息
 * @returns {Promise}
 */
export function getAdminInfo() {
  return request({
    url: '/admin/info',
    method: 'get'
  });
}

/**
 * 获取仪表盘数据
 * @returns {Promise}
 */
export function getDashboardData() {
  return request({
    url: '/api/admin/dashboard',
    method: 'get'
  });
}

/**
 * 管理员退出登录
 * @returns {Promise}
 */
export function logout() {
  return request({
    url: '/admin/logout',
    method: 'post'
  });
}

/**
 * 获取所有订单（用于实时监控）
 * @param {Object} params 包含页码、每页数量和筛选条件的对象
 * @returns {Promise}
 */
export function getAllOrders(params) {
  return request({
    url: '/api/admin/order/all',
    method: 'get',
    params
  });
}

/**
 * 获取订单统计数据
 * @param {Object} params 包含时间范围和其他过滤条件的对象
 * @returns {Promise}
 */
export function getOrderStatistics(params) {
  return request({
    url: '/api/admin/order/statistics',
    method: 'get',
    params
  });
}

/**
 * 获取订单状态分布统计
 * @returns {Promise}
 */
export function getOrderStatusDistribution() {
  return request({
    url: '/api/admin/order/status-distribution',
    method: 'get'
  });
}

/**
 * 获取实时订单流量统计
 * @param {Object} params 包含时间颗粒度的对象
 * @returns {Promise}
 */
export function getOrderRealTimeFlow(params) {
  return request({
    url: '/api/admin/order/real-time-flow',
    method: 'get',
    params
  });
}

/**
 * 获取异常订单列表
 * @param {Object} params 包含页码和每页数量的对象
 * @returns {Promise}
 */
export function getAbnormalOrders(params) {
  return request({
    url: '/api/admin/order/abnormal',
    method: 'get',
    params
  });
}

/**
 * 获取所有调度配置
 * @returns {Promise}
 */
export function getDispatchConfigs() {
  return request({
    url: '/api/admin/dispatch/configs',
    method: 'get'
  });
}

/**
 * 获取当前激活的调度配置
 * @returns {Promise}
 */
export function getActiveDispatchConfig() {
  return request({
    url: '/api/admin/dispatch/active-config',
    method: 'get'
  });
}

/**
 * 启用指定的调度配置
 * @param {number} configId 配置ID
 * @returns {Promise}
 */
export function activateDispatchConfig(configId) {
  return request({
    url: '/api/admin/dispatch/activate',
    method: 'post',
    params: {
      configId
    }
  });
}

/**
 * 添加调度配置
 * @param {Object} data 配置数据
 * @returns {Promise}
 */
export function addDispatchConfig(data) {
  return request({
    url: '/api/admin/dispatch/add',
    method: 'post',
    data
  });
}

/**
 * 更新调度配置
 * @param {Object} data 配置数据
 * @returns {Promise}
 */
export function updateDispatchConfig(data) {
  return request({
    url: '/api/admin/dispatch/update',
    method: 'post',
    data
  });
}

/**
 * 删除调度配置
 * @param {number} configId 配置ID
 * @returns {Promise}
 */
export function deleteDispatchConfig(configId) {
  return request({
    url: '/api/admin/dispatch/delete',
    method: 'post',
    params: {
      configId
    }
  });
}

/**
 * 获取算法类型选项
 * @returns {Promise}
 */
export function getAlgorithmOptions() {
  return request({
    url: '/api/admin/dispatch/algorithm-options',
    method: 'get'
  });
}

/**
 * 获取订单统计商家列表（用于下拉框）
 * @returns {Promise}
 */
export function getOrderMerchants() {
  return request({
    url: '/api/admin/order/merchants',
    method: 'get'
  });
}

/**
 * 获取商家订单排行
 * @param {Object} params 包含时间范围和其他过滤条件的对象
 * @returns {Promise}
 */
export function getOrderMerchantRanking(params) {
  // 处理日期范围参数
  const queryParams = { ...params };
  
  // 如果存在dateRange参数，转换为startDate和endDate
  if (queryParams.dateRange && Array.isArray(queryParams.dateRange) && queryParams.dateRange.length === 2) {
    queryParams.startDate = queryParams.dateRange[0];
    queryParams.endDate = queryParams.dateRange[1];
    delete queryParams.dateRange; // 删除原始dateRange参数
  }
  
  return request({
    url: '/api/admin/order/merchant-ranking',
    method: 'get',
    params: queryParams
  });
} 